home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
pao
/
towns
/
paolib
/
ctrl.asm
next >
Wrap
Assembly Source File
|
1991-10-18
|
2KB
|
91 lines
;==============================================================================
; << 386ASM V2.0 >> for FM TOWNS
;==============================================================================
.386p
PAGE 60,132
NAME CTRLCPY
TITLE control parameter move.
;==============================================================================
; CONTROL.EXEへのパラメータ転送
; ( 実行コマンドラインの転送 )
;
; < High C からの呼出形式 >
; extern char CTRL_cmdline_data[] ;
; extern CTRL_cmdline() ;
; strcpy( CTRL_cmdline_data,"Q:\\RUN386.EXE XXX.EXP PARA1 ..." ) ;
; RealCall( CTRL_cmdline ) ;
; exit( 0 ) ;
;
; < note > : TABS = 4
;
; < History >
; 1990.03.14 : CREATE
; 1991.04.13 : 清書
;
; ★ 注意
; 本プログラムがコールされる時には、
; CONTROL.EXE が常駐していること!
;
; Programmed by Y.Hirata
;==============================================================================
;
INCLUDE hc.inc ;
;
;--------------------------------------------
public CTRL_cmdline ;
public CTRL_cmdline_data ;
;--------------------------------------------
;
rmcode SEGMENT ;
ASSUME cs:rmcode ;
;
;********************************************
; コントローラの構造体
;********************************************
com_buf STRUC ;
Cmd_code DW ? ; コマンドコード(INPUT)
Cmd_stat DW ? ; エラーレベル (OUTPUT)
Dos_erno DW ? ; INT21(#4B)時に返されるAX
; の値(OUTPUT)
Dev_code DW ? ; INT24時に渡されるAXの値(OUTPUT)
Err_code DW ? ; INT24時に渡されるDIの値(OUTPUT)
Cmd_line DB 120 DUP (?) ;
com_buf ENDS ;
;
;********************************************
; 実行コマンドラインの転送
;********************************************
ALIGN 4 ; dword boundary
CTRL_cmdline PROC FAR ;
push si ;
push di ;
push ds ;
push cx ;
;
mov ax,0 ;
int INT_CTRL ; Output = ES:BX
mov di,bx ;
mov es:Cmd_code[di],1 ; 再帰コール時に必要
; MENUに戻るならば 0 をセット
lea di,Cmd_line.[di] ;
push cs ;
pop ds ;
mov si,OFFSET CTRL_cmdline_data
;
mov cx,120 ;
rep movsb ;
;
pop cx ;
pop ds ;
pop di ;
pop si ;
ret ;
CTRL_cmdline ENDP ;
;
CTRL_cmdline_data DB 120 DUP (?) ;
;
rmcode ENDS ;
;
END